﻿using System;
using System.Collections.Generic;
using Interfaces.Enums;
using Interfaces.Models;
using Interfaces.Validation;

namespace Interfaces.BusinessLogic
{
    public interface IUserOperationService
    {
        IUser CreateUser(string login, string password, string email, IEnumerable<RoleType> roles);
        void Remove(Guid id);
        void AddRole(Guid userId, RoleType roleType);
        void RemoveRole(Guid userId, RoleType roleType);
        void UpdatePassword(string login, string email, string oldPassword, string newPassword);
        void ResetPassword(Guid userId);
        IUser GetUser(string login, string email, string password);
        IEnumerable<IUser> GetAllUsers();
        IValidationResult Validate(string login, string password, string email, IEnumerable<RoleType> roles, string rulesetName = null);
    }
}
